package br.com.unitunes.model;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;

import javax.servlet.ServletContext;

import org.apache.tomcat.util.http.fileupload.IOUtils;

import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
import br.com.caelum.vraptor.ioc.Component;

@Component
public class Imagem extends GenericModel {
	
	private File pastaImagens;
	private Long id;
	
	public Imagem(ServletContext context) {
		String caminhoImagens = context.getRealPath("/WEB-INF/imagens");
	    pastaImagens = new File(caminhoImagens);
	    pastaImagens.mkdir();
	}
	
	public void salva(UploadedFile imagem, String tipo, Long id) {
		
		File destino = new File(pastaImagens, tipo + id.toString() + ".imagem");
	
		try {
		  IOUtils.copy(imagem.getFile(), new FileOutputStream(destino));
			} catch (IOException e) { throw new RuntimeException("Erro ao copiar imagem", e);
		}
	}	

	public File exibe(String tipo, Long id) {
		File f =  new File(pastaImagens, tipo + id.toString() + ".imagem");	
		if(!f.exists())
		{
			URL dirUrl = getClass().getResource("/br/com/unitunes/img/default.imagem");
			try {
				f = new File(dirUrl.toURI());
			} catch (URISyntaxException e) {
				e.printStackTrace();
			}
		}
		return f;
	}	
	
	@Override
	public Long getId() {
		return this.id;
	}

	@Override
	public void setId(Long id) {
		this.id = id;
	}
}
